using System;
using System.Data;
using BRozklad.RozkladLib;

namespace BRozklad.GAs
{
    [Serializable()]
    public class Person
    {
        private IConcretePerson rozklad;
        private int cost = -1;


        public Person()
        {
            //TODO: podano, bo pryvjazka do konkretnogo typu
            rozklad = new Rozklad();
        }
        public void StartGenerate(DataSet inrozklad)
        {
            rozklad.StartGenerate(inrozklad);
            cost = -1;
        }
        public void NextGenerate(Person person, DataSet inrozklad)  //TODO: const
        {
            rozklad.NextGenerate(person.rozklad, inrozklad);
            cost = -1;
        }
        public int Cost
        {     
            get
            {
                if (cost == -1)
                    cost = rozklad.GetCost();
                return cost;
            }
        }

        /*dodatkovi*/
        internal void SaveToResult()
        {
            rozklad.MoveToRes();
        }
    }
}
